from flask import session, g
from functools import wraps

from app.models.models import User
from app import db

def login_user_data(view_func):
    @wraps(view_func)
    def wrapper(*args, **kwargs):
        #尝试从session中获取user_id
        # session: 3_取用session值（3/4）
        user_id = session.get('user_id')
        user = None
        if user_id:
            #用户已登录
            try:
                user = db.session.query(User).filter(user_id == user_id).first()
            except Exception as e:
                print("提取用户模型类查询，产生异常")

        # 使用g变量临时保存user信息
        # g变量中保存的数据可以在请求开始到请求结束过程中使用
        g.user = user
        return view_func(*args, **kwargs)
    return wrapper